@echo off
chcp 65001 >nul
echo ========================================
echo cencat用户管理系统数据库初始化脚本
echo 作者: cencat
echo 版本: v1.0.0
echo ========================================
echo.

:: 设置数据库连接参数
set DB_HOST=localhost
set DB_PORT=3306
set DB_USER=root
set DB_PASSWORD=123456
set DB_NAME=cencat_saas
set INIT_SQL=init-cencat-user.sql

:: 检查MySQL是否安装
echo [1/5] 检查MySQL环境...
mysql --version >nul 2>&1
if errorlevel 1 (
    echo ❌ 错误：未找到MySQL命令，请确保MySQL已正确安装并添加到PATH环境变量中
    echo 💡 提示：请安装MySQL 8.0+版本
    pause
    exit /b 1
)
echo ✅ MySQL环境检查通过
echo.

:: 检查初始化脚本是否存在
echo [2/5] 检查初始化脚本...
if not exist "%INIT_SQL%" (
    echo ❌ 错误：未找到初始化脚本文件 %INIT_SQL%
    echo 💡 提示：请确保 %INIT_SQL% 文件在当前目录下
    pause
    exit /b 1
)
echo ✅ 初始化脚本检查通过
echo.

:: 测试数据库连接
echo [3/5] 测试数据库连接...
mysql -h%DB_HOST% -P%DB_PORT% -u%DB_USER% -p%DB_PASSWORD% -e "SELECT 1;" >nul 2>&1
if errorlevel 1 (
    echo ❌ 错误：无法连接到MySQL数据库
    echo 💡 检查项目：
    echo    - MySQL服务是否启动
    echo    - 主机地址：%DB_HOST%
    echo    - 端口号：%DB_PORT%
    echo    - 用户名：%DB_USER%
    echo    - 密码：%DB_PASSWORD%
    echo.
    echo 🔧 如需修改连接参数，请编辑此脚本文件
    pause
    exit /b 1
)
echo ✅ 数据库连接测试通过
echo.

:: 确认执行
echo [4/5] 准备执行数据库初始化...
echo ⚠️  警告：此操作将会：
echo    1. 创建数据库 %DB_NAME%（如果不存在）
echo    2. 创建所有必要的数据表
echo    3. 插入初始化数据
echo    4. 如果表已存在，将会被删除并重新创建
echo.
set /p confirm=是否继续执行？(Y/N): 
if /i not "%confirm%"=="Y" (
    echo 操作已取消
    pause
    exit /b 0
)
echo.

:: 执行初始化脚本
echo [5/5] 执行数据库初始化...
echo 正在执行初始化脚本，请稍候...
echo.

mysql -h%DB_HOST% -P%DB_PORT% -u%DB_USER% -p%DB_PASSWORD% < "%INIT_SQL%"
if errorlevel 1 (
    echo ❌ 数据库初始化失败！
    echo 💡 请检查：
    echo    1. MySQL版本是否为8.0+
    echo    2. 用户是否有足够的权限
    echo    3. 初始化脚本是否完整
    echo    4. 查看上方错误信息
    pause
    exit /b 1
)

echo.
echo ========================================
echo 🎉 数据库初始化完成！
echo ========================================
echo.
echo 📊 初始化信息：
echo    数据库名称：%DB_NAME%
echo    字符集：utf8mb4
echo    排序规则：utf8mb4_unicode_ci
echo.
echo 👤 默认账号信息：
echo    超级管理员：admin / cencat123456
echo    开发者账号：cencat / cencat123456
echo    测试账号：test / cencat123456
echo.
echo ⚠️  重要安全提醒：
echo    1. 请立即修改默认账号密码！
echo    2. 生产环境请删除测试账号！
echo    3. 请根据实际需求调整系统配置！
echo.
echo 🚀 接下来可以：
echo    1. 启动后端服务：运行 start-user-service.bat
echo    2. 访问Swagger文档：http://localhost:8080/swagger-ui.html
echo    3. 使用默认账号登录系统
echo.
echo 📚 更多信息请查看项目文档
echo ========================================
echo.
pause